/**
 * 认证控制器
 */
class AuthController {
  /**
   * 登录
   */
  async login(req, res) {
    try {
      const { username, password } = req.body;

      // 简单的硬编码认证（生产环境应使用数据库和加密）
      if (username === 'admin' && password === 'admin123') {
        // 生成简单的 token（生产环境应使用 JWT）
        const token = Buffer.from(`${username}:${Date.now()}`).toString('base64');
        
        res.json({
          success: true,
          data: {
            token,
            username,
            role: 'admin'
          },
          message: '登录成功'
        });
      } else {
        res.status(401).json({
          success: false,
          message: '用户名或密码错误'
        });
      }
    } catch (error) {
      console.error('登录失败:', error);
      res.status(500).json({
        success: false,
        message: `登录失败: ${error.message}`
      });
    }
  }

  /**
   * 验证 token（中间件）
   */
  verifyToken(req, res, next) {
    const token = req.headers.authorization?.replace('Bearer ', '');

    if (!token) {
      return res.status(401).json({
        success: false,
        message: '未提供认证令牌'
      });
    }

    // 简单验证（生产环境应使用 JWT 验证）
    try {
      const decoded = Buffer.from(token, 'base64').toString();
      const [username] = decoded.split(':');
      
      if (username === 'admin') {
        req.user = { username, role: 'admin' };
        next();
      } else {
        res.status(401).json({
          success: false,
          message: '无效的认证令牌'
        });
      }
    } catch (error) {
      res.status(401).json({
        success: false,
        message: '无效的认证令牌'
      });
    }
  }
}

module.exports = new AuthController();
